// setmealDetail.js
const setmealApi = require('../../api/setmeal');

Page({
  data: {
    // 套餐ID
    id: null,
    // 套餐详情
    setmeal: {},
    // 套餐包含的菜品
    dishes: [],
    // 购物车数量
    cartCount: 0
  },

  onLoad(options) {
    // 获取套餐ID
    const id = options.id;
    if (id) {
      this.setData({ id });
      // 加载套餐详情
      this.loadSetmealDetail(id);
      // 加载购物车数量
      this.loadCartCount();
    }
  },

  // 加载套餐详情
  loadSetmealDetail(id) {
    wx.showLoading({
      title: '加载中...'
    });

    // 获取套餐详情
    setmealApi.getSetmealDishes(id).then(res => {
      wx.hideLoading();
      if (res.code === 1 && res.data) {
        // 新的数据格式：data字段是一个包含菜品信息的数组
        // 设置菜品列表
        this.setData({
          dishes: res.data,
          // 从返回的第一个菜品中获取套餐信息
          setmeal: {
            id: id,
            name: res.data[0]?.setmealName || '套餐详情',
            price: res.data[0]?.setmealPrice || 0,
            image: res.data[0]?.image || '',
            description: res.data[0]?.description || ''
          }
        });
      } else {
        wx.showToast({
          title: '获取套餐详情失败',
          icon: 'none'
        });
      }
    }).catch(err => {
      console.error('获取套餐详情失败', err);
      wx.hideLoading();
      wx.showToast({
        title: '获取套餐详情失败',
        icon: 'none'
      });
    });
  },

  // 添加到购物车
  addToCart() {
    const { setmeal } = this.data;
    
    // 准备添加购物车的参数
    const params = {
      dishId: 0, // 非菜品，设置为0
      setmealId: setmeal.id, // 套餐ID
      dishFlavor: '' // 套餐无口味选项
    };
    
    // 调用购物车API
    const cartApi = require('../../api/cart');
    cartApi.addToCart(params).then(res => {
      if (res.code === 1) {
        // 更新购物车数量
        this.loadCartCount();
        
        wx.showToast({
          title: '添加成功',
          icon: 'success'
        });
      } else {
        wx.showToast({
          title: res.msg || '添加失败',
          icon: 'none'
        });
      }
    }).catch(err => {
      console.error('添加购物车失败', err);
      wx.showToast({
        title: '添加失败，请重试',
        icon: 'none'
      });
    });
  },

  // 加载购物车数量
  loadCartCount() {
    // 调用购物车API获取购物车数据
    const cartApi = require('../../api/cart');
    cartApi.getCartList().then(res => {
      if (res.code === 1) {
        // 计算总数
        let count = 0;
        res.data.forEach(item => {
          count += item.number;
        });
        
        this.setData({
          cartCount: count
        });
      }
    }).catch(err => {
      console.error('获取购物车数量失败', err);
    });
  },

  // 返回上一页
  goBack() {
    wx.navigateBack();
  },

  // 查看购物车
  viewCart() {
    // 设置全局标记，表示需要在首页显示购物车
    getApp().globalData.showCartAfterRedirect = true;
    // 跳转到首页
    wx.switchTab({
      url: '/pages/index/index'
    });
  }
});